package vista;

import gpschallenge.componentes.utililidades.XML;
import gpschallenge.juego.Jugador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

import controlador.Coordinador;

public class VentanaPuntajes extends JFrame implements ActionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private static String URL_PUNTAJES = "Puntajes.xml";
	private Coordinador miCoordinador;
	private JLabel labelTitulo;
	private JButton botonVolver;

	@SuppressWarnings("unchecked")
	public VentanaPuntajes(Coordinador unCoordinador) throws IOException,
			ClassNotFoundException {
		miCoordinador = unCoordinador;

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		labelTitulo = new JLabel();
		labelTitulo.setText("PUNTAJES");
		labelTitulo.setBounds(200, 20, 120, 25);
		add(labelTitulo);

		File archivoPuntajes = new File(URL_PUNTAJES);
		ArrayList<Jugador> listaDePuntajes = null;
		if (archivoPuntajes.exists()) {
			listaDePuntajes = (ArrayList<Jugador>) XML
					.obtenerObjeto(URL_PUNTAJES);
			java.util.Iterator<Jugador> it = listaDePuntajes.iterator();
			Jugador unJugador;
			int separacion = 40;
			int numero = 1;
			while (it.hasNext()) {
				unJugador = it.next();
				JLabel labelNombre = new JLabel();
				labelNombre.setText(numero + " - " + unJugador.getNombre());
				labelNombre.setBounds(180, separacion + 20, 120, 25);
				add(labelNombre);

				JLabel labelPuntaje = new JLabel();
				labelPuntaje.setText(Integer.toString(unJugador.getPuntaje()));
				labelPuntaje.setBounds(280, separacion + 20, 120, 25);
				add(labelPuntaje);

				separacion += 20;
				numero++;
			}
		} else {
			JLabel labelNada = new JLabel();
			labelNada.setText("No Hay Puntajes");
			labelNada.setBounds(180, 150, 120, 25);
			add(labelNada);
		}

		botonVolver = new JButton();
		botonVolver.setBounds(380, 280, 90, 30);
		botonVolver.setText("Volver");

		botonVolver.addActionListener(this);
		add(botonVolver);

		setSize(480, 350);
		setTitle("GPS-Challenge");
		setLocationRelativeTo(null);
		setResizable(false);
		setLayout(null);
	}

	public void setCoordinador(Coordinador unCoordinador) {
		miCoordinador = unCoordinador;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == botonVolver) {
			this.dispose();
			miCoordinador.mostrarVentanaMenu();
		}

	}

}
